package com.ruoyi.cat.service;

import com.ruoyi.cat.domain.CatIprecordTable;
import com.ruoyi.cat.domain.DTO.ActivityDTO;
import com.ruoyi.cat.domain.DTO.TradeNumDTO;
import com.ruoyi.cat.domain.VO.*;

import java.util.List;

/**
 * IP记录Service接口
 * 
 * @author ruoyi
 * @date 2024-12-30
 */
public interface ICatIprecordTableService 
{
    /**
     * 查询IP记录
     * 
     * @param id IP记录主键
     * @return IP记录
     */
    public CatIprecordTable selectCatIprecordTableById(Long id);

    /**
     * 查询IP记录列表
     * 
     * @param catIprecordTable IP记录
     * @return IP记录集合
     */
    public List<CatIprecordTable> selectCatIprecordTableList(CatIprecordTable catIprecordTable);

    /**
     * 新增IP记录
     * 
     * @param catIprecordTable IP记录
     * @return 结果
     */
    public int insertCatIprecordTable(CatIprecordTable catIprecordTable);

    /**
     * 修改IP记录
     * 
     * @param catIprecordTable IP记录
     * @return 结果
     */
    public int updateCatIprecordTable(CatIprecordTable catIprecordTable);

    /**
     * 批量删除IP记录
     * 
     * @param ids 需要删除的IP记录主键集合
     * @return 结果
     */
    public int deleteCatIprecordTableByIds(Long[] ids);

    /**
     * 删除IP记录信息
     * 
     * @param id IP记录主键
     * @return 结果
     */
    public int deleteCatIprecordTableById(Long id);


    CatIprecordTable getIprecordTable(CatIprecordTable catIprecordTable);

    CatIprecordTable getStaskData(CatIprecordTable catIprecordTable);


    CatIprecordTable getStaskDataNo(CatIprecordTable catIprecordTable);

    CatIprecordTable getTotalUvCount(CatIprecordTable catIprecordTable);

    List<CatIprecordTable> getShareUserId();

    boolean existsShareRecord(CatIprecordTable query);


    Long getIprecordTableBy(DataScreeningVO query);

    Long getIprecordTableDay(DataScreeningVO query);



    Long getIprecordTableByNo(DataScreeningVO query);

    Long getIprecordTableCount(DataScreeningVO query);

    TradeNumDTO getTradeNum(TradeNumVO tradeNumDTO);


    Integer insertCatIpCodeUnique(CatIpCodeVO catIpCodeVO);

    ActivityDTO getActivityOverview(DataScreeningVO dataquery);

    List<ChartVO> getActivityChart(DataScreeningVO dataquery);

    ActivityDTO getArticleOverview(DataScreeningVO dataquery);

    List<ChartVO> getArticleChart(DataScreeningVO dataquery);



    Integer saveArticleData(CatForward catForward);


    CatForward selectArticleByUserId(CatForward catForward);


    List<ChartVO> getActivityData(DataScreeningVO dataquery);


    ActivityDTO getIprecordCountCS(DataScreeningVO query);

    Long countShareRecord(CatIprecordTable query);
}
